using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Practices.CompositeUI.SmartParts;
using System.Drawing;

namespace SCSFContrib.CompositeUI.WinForms.Workspaces
{
	public class OutlookBarSmartPartInfo : SmartPartInfo
	{
        private Image _icon;
        private string _eventTopicName;
        private Color _imageTransparentColor = Color.Empty;
        private double _index = -1.0;

        /// <summary>
        /// Get or set the transparent color of the icon image
        /// </summary>
        public Color ImageTransparentColor
        {
            get { return _imageTransparentColor; }
            set { _imageTransparentColor = value; }
        }

        /// <summary>
        /// Get or set the name of the <see cref="Microsoft.Practices.CompositeUI.EventBroker.EventTopic" /> to be fired when the button is pressed.
        /// </summary>
        public string EventTopicName
        {
            get { return _eventTopicName; }
            set { _eventTopicName = value; }
        }

        /// <summary>
        /// Get or set the icon image to be used in the outlook bar button
        /// </summary>
		public Image Icon
		{
			get { return _icon; }
			set { _icon = value; }
		}

        /// <summary>
        /// Get or set the position index where the button will be inserted relative to the other buttons (The lesser the index, the upper the button will appear)
        /// </summary>        
        public double Index
        {
            get { return this._index; }
            set { this._index = value; }
        }

        public OutlookBarSmartPartInfo()           
        { }

        public OutlookBarSmartPartInfo(string title, Image icon)
            : this (title, icon, String.Empty)
        { }

        public OutlookBarSmartPartInfo(string title, Image icon, string eventTopic)
        {
            this.Title = title;
            this._icon = icon;
            this._eventTopicName = eventTopic;
        }

        public OutlookBarSmartPartInfo(string title, Image icon, double index)
        {
            this.Title = title;
            this._icon = icon;
            this._index = index;
        }

        public OutlookBarSmartPartInfo(string title, Image icon, string eventTopic, double index)
        {
            this.Title = title;
            this._icon = icon;
            this._eventTopicName = eventTopic;
            this._index = index;
        }
	}
}
